home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v11i099: reve - an othello game, Patch2c
- Message-ID: <6739@tekred.CNA.TEK.COM>
- Date: 20 Dec 90 00:37:33 GMT
- Sender: news@tekred.CNA.TEK.COM
- Lines: 1135
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Rich Burridge <rburridge@sun.COM>
- Posting-number: Volume 11, Issue 99
- Archive-name: reve/Patch2c
- Patch-To: reve: Volume 11, Issue 52-58
- Environment: SunView, XView, X11R4, termcap
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 3 (of 3)."
- # Contents: patches02c
- # Wrapped by billr@saab on Wed Dec 19 16:32:51 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patches02c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patches02c'\"
- else
- echo shar: Extracting \"'patches02c'\" \(37905 characters\)
- sed "s/^X//" >'patches02c' <<'END_OF_FILE'
- X------- reve.h -------
- X*** /tmp/da02145 Wed Nov 28 11:00:32 1990
- X--- reve.h Fri Nov 23 23:16:36 1990
- X***************
- X*** 25,31 ****
- X #include <stdio.h>
- X #include <sys/types.h>
- X
- X! #define FCLOSE (void) fclose /* To make lint happy. */
- X #define FFLUSH (void) fflush
- X #define FGETS (void) fgets
- X #define FSEEK (void) fseek
- X--- 25,32 ----
- X #include <stdio.h>
- X #include <sys/types.h>
- X
- X! #define ALARM (void) alarm /* To make lint happy. */
- X! #define FCLOSE (void) fclose
- X #define FFLUSH (void) fflush
- X #define FGETS (void) fgets
- X #define FSEEK (void) fseek
- X***************
- X*** 64,70 ****
- X #else
- X #define CELL_SIZE (int) ((TOTAL_WIDTH-(2*BBORDER)) / BOARD_SIZE)
- X #define CY ((NOROWS*BHEIGHT) + ((NOROWS-1)*BGAP) + (2*BBORDER))
- X! #define NOROWS 6 /* Number of rows of reve items. */
- X #define TOTAL_HEIGHT CY + (8 * CELL_SIZE) + (2 * BBORDER)
- X #define TOTAL_WIDTH ((NOBUTS*BWIDTH) + ((NOBUTS-1)*BGAP) + (2*BBORDER))
- X #endif /*XVIEW*/
- X--- 65,71 ----
- X #else
- X #define CELL_SIZE (int) ((TOTAL_WIDTH-(2*BBORDER)) / BOARD_SIZE)
- X #define CY ((NOROWS*BHEIGHT) + ((NOROWS-1)*BGAP) + (2*BBORDER))
- X! #define NOROWS 7 /* Number of rows of reve items. */
- X #define TOTAL_HEIGHT CY + (8 * CELL_SIZE) + (2 * BBORDER)
- X #define TOTAL_WIDTH ((NOBUTS*BWIDTH) + ((NOBUTS-1)*BGAP) + (2*BBORDER))
- X #endif /*XVIEW*/
- X***************
- X*** 231,239 ****
- X void do_move(), do_selection(), domove() ;
- X void done(), draw_button(), draw_cycle() ;
- X void draw_cycle_item(), draw_image(), draw_line() ;
- X! void draw_piece(), draw_rect(), draw_stencil() ;
- X! void draw_text(), draw_textfield() ;
- X! void generate_graphics(), get_filename() ;
- X void get_options(), get_xy(), getparam() ;
- X void handle_board_event(), handle_event(), handle_item() ;
- X void handle_key(), init_canvas(), init_edge_table() ;
- X--- 232,240 ----
- X void do_move(), do_selection(), domove() ;
- X void done(), draw_button(), draw_cycle() ;
- X void draw_cycle_item(), draw_image(), draw_line() ;
- X! void draw_outline(), draw_piece(), draw_rect() ;
- X! void draw_square(), draw_stencil(), draw_text() ;
- X! void draw_textfield(), generate_graphics(), get_filename() ;
- X void get_options(), get_xy(), getparam() ;
- X void handle_board_event(), handle_event(), handle_item() ;
- X void handle_key(), init_canvas(), init_edge_table() ;
- X***************
- X*** 245,253 ****
- X void message(), nap_upto(), new_game() ;
- X void position_popup(), process_event(), quit() ;
- X void remove_textfield(), save_game(), set_cursor() ;
- X! void set_cycle(), set_display_types() ;
- X! void set_timer(), set_score(), set_turn() ;
- X! void show_all(), show_all_moves(), show_last() ;
- X void show_suggestion(), start_tool() ;
- X void suggest(), think(), undo() ;
- X void update_board_image(), usage(), who_wins() ;
- X--- 246,255 ----
- X void message(), nap_upto(), new_game() ;
- X void position_popup(), process_event(), quit() ;
- X void remove_textfield(), save_game(), set_cursor() ;
- X! void set_cycle(), set_display_types(), set_eval() ;
- X! void set_score(), set_timer(), set_turn() ;
- X! void show_all(), show_all_moves(), show_best() ;
- X! void show_last(), show_number() ;
- X void show_suggestion(), start_tool() ;
- X void suggest(), think(), undo() ;
- X void update_board_image(), usage(), who_wins() ;
- X
- X------- reve.man.text -------
- X*** /tmp/da02148 Wed Nov 28 11:00:33 1990
- X--- reve.man.text Fri Nov 23 07:05:48 1990
- X***************
- X*** 9,18 ****
- X reve - an othello game.
- X
- X SYNOPSIS
- X! reve [ -b [ display ] ] [ -c ] [ -d difficulty ] [ -e edge-
- X! file ] [ -g geometry ] [ -i ] [ -l gamefile ] [ -m ] [ -n ]
- X! [ -r ] [ -v ] [ -w [ display ] ] [ -? ] [ -Wi ] [ -Wp x y ]
- X! [ -WP x y ]
- X
- X DESCRIPTION
- X Reve is a version of the popular Othello game. It contains
- X--- 9,19 ----
- X reve - an othello game.
- X
- X SYNOPSIS
- X! reve [ -animate ] [ -b [ display ] ] [ -c ] [ -d difficulty
- X! ] [ -e edgefile ] [ -g geometry ] [ -i ] [ -last ] [ -load
- X! gamefile ] [ -m ] [ -notes ] [ -number ] [ -quick ] [ -r ] [
- X! -v ] [ -w [ display ] ] [ -? ] [ -Wi ] [ -Wp x y ] [ -WP x y
- X! ]
- X
- X DESCRIPTION
- X Reve is a version of the popular Othello game. It contains
- X***************
- X*** 20,47 ****
- X being able to function on normal display terminals using a
- X termcap interface.
- X
- X! Reve is played on an 8 x 8 board, with pieces which should
- X be considered to be black on one side and white on the
- X! other. A legal move consists of placing a piece of one's own
- X color on the board so as to "sandwich" one or more rows
- X! (orthogonal or diagonal) of pieces of the opposite color
- X! between the piece just placed and another piece of the same
- X! color. All pieces so sandwiched are flipped over to reveal
- X the color of the other side (your own color).
- X
- X! The object of the game, is to have more pieces than the
- X opponent at the end of the game (ie. when the board is full
- X or neither side has a legal move). If you have no legal
- X move, you simply miss a turn. Black goes first.
- X
- X! With reve, to place one of your own pieces simply click with
- X! the mouse over the square in which you want your piece to
- X go. Note that it is also possible to supply a number and a
- X! letter pair, to indicate where you would like your new piece
- X! to go. This is the only method to place pieces with the dumb
- X tty interface. The square containing the last move will be
- X shown with a black outline. This is updated with each new
- X! move.
- X
- X There are various buttons and cyclic selections available.
- X Their meanings are given below, plus an indication of their
- X--- 21,50 ----
- X being able to function on normal display terminals using a
- X termcap interface.
- X
- X! Reve is played on an 8 x 8 board, with stones which should
- X be considered to be black on one side and white on the
- X! other. A legal move consists of placing a stone of one's own
- X color on the board so as to "sandwich" one or more rows
- X! (orthogonal or diagonal) of stones of the opposite color
- X! between the stone just placed and another stone of the same
- X! color. All stones so sandwiched are flipped over to reveal
- X the color of the other side (your own color).
- X
- X! The object of the game, is to have more stones than the
- X opponent at the end of the game (ie. when the board is full
- X or neither side has a legal move). If you have no legal
- X move, you simply miss a turn. Black goes first.
- X
- X! With reve, to place one of your own stones simply click with
- X! the mouse over the square in which you want your stone to
- X go. Note that it is also possible to supply a number and a
- X! letter pair, to indicate where you would like your new stone
- X! to go. This is the only method to place stones with the dumb
- X tty interface. The square containing the last move will be
- X shown with a black outline. This is updated with each new
- X! move. If you hold the mouse button down as you move around
- X! the board, the square you are currently over will be
- X! highlighted.
- X
- X There are various buttons and cyclic selections available.
- X Their meanings are given below, plus an indication of their
- X***************
- X*** 54,65 ****
- X
- X By default, a human will play black, and the computer will
- X play white. If you want a human vs human startup or some
- X- other combination, then you should use the appropriate com-
- X- mand line options (see below).
- X
- X
- X
- X-
- X Sun Release 4.1 Last change: 18 October 1990 1
- X
- X
- X--- 57,65 ----
- X***************
- X*** 71,76 ****
- X--- 71,79 ----
- X
- X
- X
- X+ other combination, then you should use the appropriate com-
- X+ mand line options (see below).
- X+
- X REVE BUTTONS
- X With the graphics versions, there are eight buttons that are
- X normally displayed at the top of the Reve window. Each of
- X***************
- X*** 90,97 ****
- X unsuccessful, it will stop on the invalid
- X line, and display an error message. As
- X each line is successfully read from the
- X! game file, the piece is displayed on the
- X! board, and the appropriate pieces flipped.
- X
- X moves? [ A ] Show all the valid moves for the current
- X board. This is useful for beginners, and
- X--- 93,100 ----
- X unsuccessful, it will stop on the invalid
- X line, and display an error message. As
- X each line is successfully read from the
- X! game file, the stone is displayed on the
- X! board, and the appropriate stones flipped.
- X
- X moves? [ A ] Show all the valid moves for the current
- X board. This is useful for beginners, and
- X***************
- X*** 120,128 ****
- X REVE CYCLIC SELECTIONS
- X With the graphical versions, just below the eight buttons
- X are four cycle items. These can either be selected with the
- X- left mouse button, to increment or decrement the current
- X- selection (depending upon which half on the item you click
- X- over), or a selection can be made from a popup menu when you
- X
- X
- X
- X--- 123,128 ----
- X***************
- X*** 137,142 ****
- X--- 137,145 ----
- X
- X
- X
- X+ left mouse button, to increment or decrement the current
- X+ selection (depending upon which half on the item you click
- X+ over), or a selection can be made from a popup menu when you
- X click with the right mouse button (SunView and XView ver-
- X sions only). Each cycle value has a keyboard equivalent
- X which is given in brackets below. This must be followed by
- X***************
- X*** 184,197 ****
- X tion of whether it was a good or bad move.
- X
- X OPTIONS
- X! -b [ display ]
- X! Black will be played by a human. With the X11 variant
- X! of reve it is possible to give an optional display
- X! value.
- X
- X
- X
- X-
- X Sun Release 4.1 Last change: 18 October 1990 3
- X
- X
- X--- 187,197 ----
- X tion of whether it was a good or bad move.
- X
- X OPTIONS
- X! -animate
- X! Show animation. The computer's stone will glide in from
- X
- X
- X
- X Sun Release 4.1 Last change: 18 October 1990 3
- X
- X
- X***************
- X*** 203,210 ****
- X
- X
- X
- X -c The computer will play. Presence or absence of -b and
- X! -w options determine which piece the computer plays.
- X
- X -d difficulty
- X The level of difficulty for computer moves. See the
- X--- 203,218 ----
- X
- X
- X
- X+ the top left corner of the board, and when you hold the
- X+ left mouse button down, your stone is dragged around.
- X+
- X+ -b [ display ]
- X+ Black will be played by a human. With the X11 variant
- X+ of reve it is possible to give an optional display
- X+ value.
- X+
- X -c The computer will play. Presence or absence of -b and
- X! -w options determine which stone the computer plays.
- X
- X -d difficulty
- X The level of difficulty for computer moves. See the
- X***************
- X*** 227,240 ****
- X inverse mode. This option is currently only implemented
- X for the SunView version.
- X
- X! -l gamefile
- X Load a game file. The format of this game file is given
- X! below. The board will be setup with these pieces.
- X
- X -m Always display in monochrome, even on a color screen.
- X
- X! -n Display computer notes.
- X
- X -r Save a log of computer move information to the file
- X reve.res as the game progresses. This information is
- X probably only useful to people trying to improve the
- X--- 235,274 ----
- X inverse mode. This option is currently only implemented
- X for the SunView version.
- X
- X! -last
- X! Show where the last stone was placed, by outlining the
- X! square.
- X!
- X! -load gamefile
- X Load a game file. The format of this game file is given
- X! below. The board will be setup with these stones.
- X
- X -m Always display in monochrome, even on a color screen.
- X
- X! -notes
- X! Display computer notes.
- X
- X+ -number
- X+ Show the move number on the last stone placed.
- X+
- X+ -quick
- X+ Play a quick game. Don't flash the stones as they are
- X+ being turned.
- X+
- X+
- X+
- X+
- X+ Sun Release 4.1 Last change: 18 October 1990 4
- X+
- X+
- X+
- X+
- X+
- X+
- X+ REVE(6) GAMES AND DEMOS REVE(6)
- X+
- X+
- X+
- X -r Save a log of computer move information to the file
- X reve.res as the game progresses. This information is
- X probably only useful to people trying to improve the
- X***************
- X*** 255,274 ****
- X and XView version of reve will automatically uses this
- X flag, but the X11 version will also.
- X
- X-
- X-
- X-
- X- Sun Release 4.1 Last change: 18 October 1990 4
- X-
- X-
- X-
- X-
- X-
- X-
- X- REVE(6) GAMES AND DEMOS REVE(6)
- X-
- X-
- X-
- X -Wp x y
- X Start the open window position at x y
- X
- X--- 289,294 ----
- X***************
- X*** 291,297 ****
- X and give the column and row. The column letter can be in
- X either lower or upper case.
- X
- X! It is possible for one piece to have two or more consequen-
- X tive moves, hence the need for the above scheme. Reve is
- X flexible about white space (except between the '<' and '>'
- X characters). The remarks field is ignored. The program will
- X--- 311,317 ----
- X and give the column and row. The column letter can be in
- X either lower or upper case.
- X
- X! It is possible for one player to have two or more consequen-
- X tive moves, hence the need for the above scheme. Reve is
- X flexible about white space (except between the '<' and '>'
- X characters). The remarks field is ignored. The program will
- X***************
- X*** 301,306 ****
- X--- 321,340 ----
- X
- X FILES
- X /usr/local/lib/reve.edgetable
- X+
- X+
- X+
- X+ Sun Release 4.1 Last change: 18 October 1990 5
- X+
- X+
- X+
- X+
- X+
- X+
- X+ REVE(6) GAMES AND DEMOS REVE(6)
- X+
- X+
- X+
- X edge stability table for all possible edge combina-
- X tions.
- X
- X***************
- X*** 324,330 ****
- X
- X
- X
- X! Sun Release 4.1 Last change: 18 October 1990 5
- X
- X
- X
- X--- 358,396 ----
- X
- X
- X
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X!
- X! Sun Release 4.1 Last change: 18 October 1990 6
- X
- X
- X
- X
- X------- sunview.c -------
- X*** /tmp/da02151 Wed Nov 28 11:00:34 1990
- X--- sunview.c Mon Nov 19 18:26:46 1990
- X***************
- X*** 178,183 ****
- X--- 178,185 ----
- X int rop ;
- X
- X rop = opvals[(int) op] ;
- X+ if (!iscolor[(int) cur_dpyno] && color == C_WHITE)
- X+ rop = opvals[(int) RCLR] ;
- X PW_VECTOR(cpw, x1, y1, x2, y2, rop | PIX_COLOR(color), 1) ;
- X }
- X
- X***************
- X*** 272,278 ****
- X PW_PUTCOLORMAP(cpw, 0, OTH_COLORSIZE, red, green, blue) ;
- X if (inv_video) PW_REVERSEVIDEO(cpw, 0, OTH_COLORSIZE) ;
- X
- X! if (iscolor)
- X {
- X frame_pw = (Pixwin *) window_get(frame, WIN_PIXWIN) ;
- X PW_SETCMSNAME(frame_pw, colorname) ;
- X--- 274,280 ----
- X PW_PUTCOLORMAP(cpw, 0, OTH_COLORSIZE, red, green, blue) ;
- X if (inv_video) PW_REVERSEVIDEO(cpw, 0, OTH_COLORSIZE) ;
- X
- X! if (iscolor[(int) cur_dpyno])
- X {
- X frame_pw = (Pixwin *) window_get(frame, WIN_PIXWIN) ;
- X PW_SETCMSNAME(frame_pw, colorname) ;
- X***************
- X*** 408,414 ****
- X start_tool(dtype) /* Display window and start the notifier. */
- X enum disp_type dtype ;
- X {
- X! if (iscolor)
- X {
- X reve_icon = (Icon) window_get(frame, FRAME_ICON) ;
- X ICON_SET(reve_icon, ICON_IMAGE, &cicon_pr, 0) ;
- X--- 410,416 ----
- X start_tool(dtype) /* Display window and start the notifier. */
- X enum disp_type dtype ;
- X {
- X! if (iscolor[(int) cur_dpyno])
- X {
- X reve_icon = (Icon) window_get(frame, FRAME_ICON) ;
- X ICON_SET(reve_icon, ICON_IMAGE, &cicon_pr, 0) ;
- X
- X------- tty.c -------
- X*** /tmp/da02154 Wed Nov 28 11:00:35 1990
- X--- tty.c Thu Nov 22 11:17:28 1990
- X***************
- X*** 349,369 ****
- X othervals[(int) PANEL_MES].row, str, TRUE) ;
- X return ;
- X }
- X! else if (x == 237 && y == 195) /* Note message. */
- X {
- X draw_string(othervals[(int) EVAL_MES].column,
- X othervals[(int) EVAL_MES].row, str, TRUE) ;
- X return ;
- X }
- X! else if (x == 15 && y == 237) /* Score message. */
- X {
- X! if (sscanf(str, "Black: %d, White: %d", &black, &white) == 2)
- X SPRINTF(str, "Black (O): %d, White (X): %d", black, white) ;
- X draw_string(othervals[(int) SCORE_MES].column,
- X othervals[(int) SCORE_MES].row, str, TRUE) ;
- X return ;
- X }
- X! else if (x == 237 && y == 237) /* Turn message. */
- X {
- X draw_string(othervals[(int) TURN_MES].column,
- X othervals[(int) TURN_MES].row, str, TRUE) ;
- X--- 349,369 ----
- X othervals[(int) PANEL_MES].row, str, TRUE) ;
- X return ;
- X }
- X! else if (x == 15 && y == 237) /* Note message. */
- X {
- X draw_string(othervals[(int) EVAL_MES].column,
- X othervals[(int) EVAL_MES].row, str, TRUE) ;
- X return ;
- X }
- X! else if (x == 15 && y == 279) /* Score message. */
- X {
- X! if (sscanf(str, "Stones: Black: %d White: %d", &black, &white) == 2)
- X SPRINTF(str, "Black (O): %d, White (X): %d", black, white) ;
- X draw_string(othervals[(int) SCORE_MES].column,
- X othervals[(int) SCORE_MES].row, str, TRUE) ;
- X return ;
- X }
- X! else if (x == 237 && y == 279) /* Turn message. */
- X {
- X draw_string(othervals[(int) TURN_MES].column,
- X othervals[(int) TURN_MES].row, str, TRUE) ;
- X***************
- X*** 377,382 ****
- X--- 377,383 ----
- X if (ttyvals[i].column != -1)
- X {
- X if (EQUAL(str, "load")) STRCPY(str, "Load") ;
- X+ else if (EQUAL(str, "moves?")) STRCPY(str, "Moves?") ;
- X else if (EQUAL(str, "save")) STRCPY(str, "Save") ;
- X else if (EQUAL(str, "show all")) STRCPY(str, "show All") ;
- X draw_string(ttyvals[i].column, ttyvals[i].row, str, FALSE) ;
- X
- X------- x11.c -------
- X*** /tmp/da02157 Wed Nov 28 11:00:36 1990
- X--- x11.c Fri Nov 23 07:01:40 1990
- X***************
- X*** 29,44 ****
- X #include "images.h"
- X #include <sys/time.h>
- X
- X- #ifdef SYSV
- X- #include <string.h>
- X- #else
- X- #include <strings.h>
- X- #endif /*SYSV*/
- X-
- X #include <X11/Xlib.h>
- X #include <X11/Xutil.h>
- X #include <X11/Xatom.h>
- X #include <X11/cursorfont.h>
- X
- X #define BOLDFONT "lucidasanstypewriter-bold-12"
- X #define DEFFONT "fixed"
- X--- 29,40 ----
- X #include "images.h"
- X #include <sys/time.h>
- X
- X #include <X11/Xlib.h>
- X #include <X11/Xutil.h>
- X #include <X11/Xatom.h>
- X+ #include <X11/Xos.h>
- X #include <X11/cursorfont.h>
- X+ #include <X11/keysym.h>
- X
- X #define BOLDFONT "lucidasanstypewriter-bold-12"
- X #define DEFFONT "fixed"
- X***************
- X*** 608,613 ****
- X--- 604,610 ----
- X {
- X XClientMessageEvent *ev ;
- X XKeyPressedEvent *key_event ;
- X+ KeySym keysym ;
- X char chs[2] ;
- X int d ;
- X
- X***************
- X*** 628,637 ****
- X curx = key_event->x ;
- X cury = key_event->y ;
- X (void) XLookupString(key_event, chs, 1,
- X! (KeySym *) NULL,
- X (XComposeStatus *) NULL) ;
- X! cur_ch = chs[0] ;
- X! nextc = KEYBOARD ;
- X break ;
- X case EnterNotify : nextc = ENTER_WINDOW ;
- X break ;
- X--- 625,639 ----
- X curx = key_event->x ;
- X cury = key_event->y ;
- X (void) XLookupString(key_event, chs, 1,
- X! &keysym,
- X (XComposeStatus *) NULL) ;
- X! if (keysym == XK_Shift_L ||
- X! keysym == XK_Shift_R) nextc = IGNORE_EVENT ;
- X! else
- X! {
- X! cur_ch = chs[0] ;
- X! nextc = KEYBOARD ;
- X! }
- X break ;
- X case EnterNotify : nextc = ENTER_WINDOW ;
- X break ;
- X
- X------- FILES -------
- X*** /tmp/da02160 Wed Nov 28 11:00:37 1990
- X--- FILES Wed Nov 28 10:57:53 1990
- X***************
- X*** 26,33 ****
- X CHANGES - change history. Updated with each new patch.
- X README - describes what reve is, and how to get started.
- X TODO - bugs and suggested enhancements. Volunteers?
- X! reve.6 - the reve manual page (troff/nroff -man format).
- X! reve.man - plain text version of the reve manual pages.
- X MANIFEST - tells you what archive part each file was in.
- X FILES - what you're reading now.
- X reve.edge1 - first half of the Reve edge stability table.
- X--- 26,33 ----
- X CHANGES - change history. Updated with each new patch.
- X README - describes what reve is, and how to get started.
- X TODO - bugs and suggested enhancements. Volunteers?
- X! reve.man - the reve manual page (troff/nroff -man format).
- X! reve.man.text - plain text version of the reve manual pages.
- X MANIFEST - tells you what archive part each file was in.
- X FILES - what you're reading now.
- X reve.edge1 - first half of the Reve edge stability table.
- X***************
- X*** 44,57 ****
- X --------------------------------------------------------------------------
- X images/black.icon - black reve piece.
- X images/reve.icon - reve icon (monochrome screens and XView).
- X! images/reve.color.icon - reve icon (color screens).
- X images/white.icon - white reve piece.
- X! images/button.invert.icon - button panel item in inverted mode.
- X! images/button.normal.icon - button panel item in normal mode.
- X! images/button.stencil.icon - stencil for normal/inverted button panel items.
- X! images/cycle.glyph.icon - cycle panel item in normal mode.
- X! images/cycle.linvert.icon - cycle panel item with left side inverted.
- X! images/cycle.rinvert.icon - cycle panel item with right side inverted.
- X! images/cycle.stencil.icon - stencil for normal/inverted cycle panel items.
- X images/hglass.cursor - hour glass cursor for computer move.
- X images/nocur.cursor - no cursor when piece is being dragged.
- X--- 44,57 ----
- X --------------------------------------------------------------------------
- X images/black.icon - black reve piece.
- X images/reve.icon - reve icon (monochrome screens and XView).
- X! images/Creve.icon - reve icon (color screens).
- X images/white.icon - white reve piece.
- X! images/Ibutton.icon - button panel item in inverted mode.
- X! images/Nbutton.icon - button panel item in normal mode.
- X! images/Sbutton.icon - stencil for normal/inverted button panel items.
- X! images/Ncycle.icon - cycle panel item in normal mode.
- X! images/Lcycle.icon - cycle panel item with left side inverted.
- X! images/Rcycle.icon - cycle panel item with right side inverted.
- X! images/Scycle.icon - stencil for normal/inverted cycle panel items.
- X images/hglass.cursor - hour glass cursor for computer move.
- X images/nocur.cursor - no cursor when piece is being dragged.
- X
- X------- MANIFEST -------
- X*** /tmp/da02163 Wed Nov 28 11:00:38 1990
- X--- MANIFEST Wed Nov 28 10:55:07 1990
- X***************
- X*** 23,32 ****
- X CHANGES | 3
- X README | 3
- X TODO | 3
- X- reve.6 | 3
- X reve.man | 3
- X MANIFEST | 3
- X FILES | 3
- X Makefile.dist | 3
- X tty.c | 4
- X x11.c | 4
- X--- 23,32 ----
- X CHANGES | 3
- X README | 3
- X TODO | 3
- X reve.man | 3
- X MANIFEST | 3
- X FILES | 3
- X+ reve.man.text | 3
- X Makefile.dist | 3
- X tty.c | 4
- X x11.c | 4
- X***************
- X*** 35,49 ****
- X Imakefile | 5
- X images/black.icon | 5
- X images/reve.icon | 5
- X! images/reve.color.icon | 5
- X images/white.icon | 5
- X! images/button.invert.icon | 5
- X! images/button.normal.icon | 5
- X! images/button.stencil.icon | 5
- X! images/cycle.glyph.icon | 5
- X! images/cycle.linvert.icon | 5
- X! images/cycle.rinvert.icon | 5
- X! images/cycle.stencil.icon | 5
- X images/hglass.cursor | 5
- X images/nocur.cursor | 5
- X reve.edge1 | 6
- X--- 35,49 ----
- X Imakefile | 5
- X images/black.icon | 5
- X images/reve.icon | 5
- X! images/Creve.icon | 5
- X images/white.icon | 5
- X! images/Ibutton.icon | 5
- X! images/Nbutton.icon | 5
- X! images/Sbutton.icon | 5
- X! images/Ncycle.icon | 5
- X! images/Lcycle.icon | 5
- X! images/Rcycle.icon | 5
- X! images/Scycle.icon | 5
- X images/hglass.cursor | 5
- X images/nocur.cursor | 5
- X reve.edge1 | 6
- X
- X------- reve.man -------
- X*** /tmp/da02166 Wed Nov 28 11:00:38 1990
- X--- reve.man Fri Nov 23 08:47:02 1990
- X***************
- X*** 5,11 ****
- X .SH SYNOPSIS
- X .B "reve
- X [
- X! .B \-b
- X .I [ display ]
- X ] [
- X .B \-c
- X--- 5,13 ----
- X .SH SYNOPSIS
- X .B "reve
- X [
- X! .B \-animate
- X! ] [
- X! .B \-black
- X .I [ display ]
- X ] [
- X .B \-c
- X***************
- X*** 21,38 ****
- X ] [
- X .B \-i
- X ] [
- X! .B \-l
- X .I gamefile
- X ] [
- X .B \-m
- X ] [
- X! .B \-n
- X ] [
- X .B \-r
- X ] [
- X .B \-v
- X ] [
- X! .B \-w
- X .I [ display ]
- X ] [
- X .B \-?
- X--- 23,46 ----
- X ] [
- X .B \-i
- X ] [
- X! .B \-last
- X! ] [
- X! .B \-load
- X .I gamefile
- X ] [
- X .B \-m
- X ] [
- X! .B \-notes
- X ] [
- X+ .B \-number
- X+ ] [
- X+ .B \-quick
- X+ ] [
- X .B \-r
- X ] [
- X .B \-v
- X ] [
- X! .B \-white
- X .I [ display ]
- X ] [
- X .B \-?
- X***************
- X*** 51,64 ****
- X for SunView, X11 and XView, as well as being able to function on
- X normal display terminals using a termcap interface.
- X .LP
- X! Reve is played on an 8 x 8 board, with pieces which should be considered to
- X be black on one side and white on the other. A legal move consists of placing
- X! a piece of one's own color on the board so as to "sandwich" one or more rows
- X! (orthogonal or diagonal) of pieces of the opposite color between the piece
- X! just placed and another piece of the same color. All pieces so sandwiched are
- X flipped over to reveal the color of the other side (your own color).
- X .LP
- X! The object of the game, is to have more pieces than the opponent at
- X the end of the game (ie. when the board is full or neither side has
- X a legal move). If you have no legal move, you simply miss a turn.
- X Black goes first.
- X--- 59,72 ----
- X for SunView, X11 and XView, as well as being able to function on
- X normal display terminals using a termcap interface.
- X .LP
- X! Reve is played on an 8 x 8 board, with stones which should be considered to
- X be black on one side and white on the other. A legal move consists of placing
- X! a stone of one's own color on the board so as to "sandwich" one or more rows
- X! (orthogonal or diagonal) of stones of the opposite color between the stone
- X! just placed and another stone of the same color. All stones so sandwiched are
- X flipped over to reveal the color of the other side (your own color).
- X .LP
- X! The object of the game, is to have more stones than the opponent at
- X the end of the game (ie. when the board is full or neither side has
- X a legal move). If you have no legal move, you simply miss a turn.
- X Black goes first.
- X***************
- X*** 65,76 ****
- X .LP
- X With
- X .I reve,
- X! to place one of your own pieces simply click with the mouse over the
- X! square in which you want your piece to go. Note that it is also possible
- X to supply a number and a letter pair, to indicate where you would like your
- X! new piece to go. This is the only method to place pieces with the dumb tty
- X interface. The square containing the last move will be shown with a black
- X! outline. This is updated with each new move.
- X .LP
- X There are various buttons and cyclic selections available. Their meanings
- X are given below, plus an indication of their keyboard equivalents. With the
- X--- 73,86 ----
- X .LP
- X With
- X .I reve,
- X! to place one of your own stones simply click with the mouse over the
- X! square in which you want your stone to go. Note that it is also possible
- X to supply a number and a letter pair, to indicate where you would like your
- X! new stone to go. This is the only method to place stones with the dumb tty
- X interface. The square containing the last move will be shown with a black
- X! outline. This is updated with each new move. If you hold the mouse button
- X! down as you move around the board, the square you are currently over will
- X! be highlighted.
- X .LP
- X There are various buttons and cyclic selections available. Their meanings
- X are given below, plus an indication of their keyboard equivalents. With the
- X***************
- X*** 96,103 ****
- X load operation. When you press the Return key, filename entry is complete,
- X and the program will try to load this file. If it's unsuccessful, it will
- X stop on the invalid line, and display an error message. As each line is
- X! successfully read from the game file, the piece is displayed on the board,
- X! and the appropriate pieces flipped.
- X .IP "\fBmoves? [ A ]\fP" 18
- X Show all the valid moves for the current board. This is useful for beginners,
- X and for teaching purposes.
- X--- 106,113 ----
- X load operation. When you press the Return key, filename entry is complete,
- X and the program will try to load this file. If it's unsuccessful, it will
- X stop on the invalid line, and display an error message. As each line is
- X! successfully read from the game file, the stone is displayed on the board,
- X! and the appropriate stones flipped.
- X .IP "\fBmoves? [ A ]\fP" 18
- X Show all the valid moves for the current board. This is useful for beginners,
- X and for teaching purposes.
- X***************
- X*** 171,177 ****
- X an indication of whether it was a good or bad move.
- X .SH OPTIONS
- X .TP
- X! .BI \-b " [ display ]"
- X Black will be played by a human. With the X11 variant of
- X .I reve
- X it is possible to give an optional display value.
- X--- 181,192 ----
- X an indication of whether it was a good or bad move.
- X .SH OPTIONS
- X .TP
- X! .B \-animate
- X! Show animation. The computer's stone will glide in from the top left
- X! corner of the board, and when you hold the left mouse button down, your
- X! stone is dragged around.
- X! .TP
- X! .BI \-black " [ display ]"
- X Black will be played by a human. With the X11 variant of
- X .I reve
- X it is possible to give an optional display value.
- X***************
- X*** 178,184 ****
- X .TP
- X .B \-c
- X The computer will play. Presence or absence of \fB\-b\fP and \fB\-w\fP
- X! options determine which piece the computer plays.
- X .TP
- X .BI \-d " difficulty"
- X The level of difficulty for computer moves. See the \fBDifficulty:\fP
- X--- 193,199 ----
- X .TP
- X .B \-c
- X The computer will play. Presence or absence of \fB\-b\fP and \fB\-w\fP
- X! options determine which stone the computer plays.
- X .TP
- X .BI \-d " difficulty"
- X The level of difficulty for computer moves. See the \fBDifficulty:\fP
- X***************
- X*** 203,218 ****
- X started their graphics environment in inverse mode. This option is
- X currently only implemented for the SunView version.
- X .TP
- X! .BI \-l " gamefile"
- X Load a game file. The format of this game file is given below. The board
- X! will be setup with these pieces.
- X .TP
- X .B \-m
- X Always display in monochrome, even on a color screen.
- X .TP
- X! .B \-n
- X Display computer notes.
- X .TP
- X .B \-r
- X Save a log of computer move information to the file
- X .I reve.res
- X--- 218,242 ----
- X started their graphics environment in inverse mode. This option is
- X currently only implemented for the SunView version.
- X .TP
- X! .B \-last
- X! Show where the last stone was placed, by outlining the square.
- X! .TP
- X! .BI \-load " gamefile"
- X Load a game file. The format of this game file is given below. The board
- X! will be setup with these stones.
- X .TP
- X .B \-m
- X Always display in monochrome, even on a color screen.
- X .TP
- X! .B \-notes
- X Display computer notes.
- X .TP
- X+ .B \-number
- X+ Show the move number on the last stone placed.
- X+ .TP
- X+ .B \-quick
- X+ Play a quick game. Don't flash the stones as they are being turned.
- X+ .TP
- X .B \-r
- X Save a log of computer move information to the file
- X .I reve.res
- X***************
- X*** 229,235 ****
- X .I reve
- X program.
- X .TP
- X! .BI \-w " [ display ]"
- X White will be played by a human. With the X11 variant of
- X .I reve
- X it is possible to give an optional display value.
- X--- 253,259 ----
- X .I reve
- X program.
- X .TP
- X! .BI \-white " [ display ]"
- X White will be played by a human. With the X11 variant of
- X .I reve
- X it is possible to give an optional display value.
- X***************
- X*** 265,271 ****
- X give the column and row. The column letter can be in either lower or
- X upper case.
- X .LP
- X! It is possible for one piece to have two or more consequentive moves, hence
- X the need for the above scheme.
- X .I Reve
- X is flexible about white space (except between the '<' and '>' characters).
- X--- 289,295 ----
- X give the column and row. The column letter can be in either lower or
- X upper case.
- X .LP
- X! It is possible for one player to have two or more consequentive moves, hence
- X the need for the above scheme.
- X .I Reve
- X is flexible about white space (except between the '<' and '>' characters).
- X
- X------- reve.edge1 -------
- X*** /tmp/da02170 Wed Nov 28 11:00:40 1990
- X--- reve.edge1 Fri Nov 23 06:44:36 1990
- X***************
- X*** 728,734 ****
- X edges[ 727] = -2439 [ -xxxxxoo ]
- X edges[ 728] = 4036 [ xxxxxxoo ]
- X edges[ 729] = -7641 [ oooooo-o ]
- X! edges[ 730] = -1166 [ -ooooo-o ]
- X edges[ 731] = 34 [ xooooo-o ]
- X edges[ 732] = -2436 [ o-oooo-o ]
- X edges[ 733] = -1236 [ --oooo-o ]
- X--- 728,734 ----
- X edges[ 727] = -2439 [ -xxxxxoo ]
- X edges[ 728] = 4036 [ xxxxxxoo ]
- X edges[ 729] = -7641 [ oooooo-o ]
- X! edges[ 730] = 4000 [ -ooooo-o ]
- X edges[ 731] = 34 [ xooooo-o ]
- X edges[ 732] = -2436 [ o-oooo-o ]
- X edges[ 733] = -1236 [ --oooo-o ]
- X
- X------- reve.edge2 -------
- X*** /tmp/da02173 Wed Nov 28 11:00:42 1990
- X--- reve.edge2 Fri Nov 23 06:44:56 1990
- X***************
- X*** 548,554 ****
- X edges[2187] = -7571 [ ooooooo- ]
- X edges[2188] = -80 [ -oooooo- ]
- X edges[2189] = 1304 [ xoooooo- ]
- X! edges[2190] = -1166 [ o-ooooo- ]
- X edges[2191] = 100 [ --ooooo- ]
- X edges[2192] = 1234 [ x-ooooo- ]
- X edges[2193] = 1434 [ oxooooo- ]
- X--- 548,554 ----
- X edges[2187] = -7571 [ ooooooo- ]
- X edges[2188] = -80 [ -oooooo- ]
- X edges[2189] = 1304 [ xoooooo- ]
- X! edges[2190] = 4000 [ o-ooooo- ]
- X edges[2191] = 100 [ --ooooo- ]
- X edges[2192] = 1234 [ x-ooooo- ]
- X edges[2193] = 1434 [ oxooooo- ]
- X
- X------- Imakefile -------
- X*** /tmp/da02176 Wed Nov 28 11:00:43 1990
- X--- Imakefile Mon Nov 12 16:46:01 1990
- X***************
- X*** 79,86 ****
- X procs.o rev_eval.o rev_ip.o rev_iycp.o x11.o
- X
- X ComplexProgramTarget(reve)
- X! MakeDirectories(install,$(LIBDIR))
- X! InstallNonExec($(ETABLE),$(LIBDIR))
- X
- X install:: install.man
- X
- X--- 79,86 ----
- X procs.o rev_eval.o rev_ip.o rev_iycp.o x11.o
- X
- X ComplexProgramTarget(reve)
- X! MakeDirectories(install,$(LIBDIR)$(PATHSEP)reve)
- X! InstallNonExec($(ETABLE),$(LIBDIR)$(PATHSEP)reve)
- X
- X install:: install.man
- X
- X
- END_OF_FILE
- if test 37905 -ne `wc -c <'patches02c'`; then
- echo shar: \"'patches02c'\" unpacked with wrong size!
- fi
- # end of 'patches02c'
- fi
- echo shar: End of archive 3 \(of 3\).
- cp /dev/null ark3isdone
- MISSING=""
- for I in 1 2 3 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 3 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-